From 5d9459c7000c28f7755f41a4652747a9fec6b68e Mon Sep 17 00:00:00 2001 From: "James D. Forrester" Date: Tue, 27 Oct 2015 18:58:23 +0100 Subject: [PATCH] Update OOjs UI to v0.13.0 Release notes: https://git.wikimedia.org/blob/oojs%2Fui.git/v0.13.0/History.md Change-Id: Ie4f66b15f4f5ec9932d5fd72e12b4453724e3742 --- composer.json | 2 +- resources/lib/oojs-ui/i18n/bs.json | 6 +- resources/lib/oojs-ui/i18n/cs.json | 1 + resources/lib/oojs-ui/i18n/fi.json | 3 +- resources/lib/oojs-ui/i18n/nl.json | 4 +- .../lib/oojs-ui/oojs-ui-apex-noimages.css | 52 +- resources/lib/oojs-ui/oojs-ui-apex.js | 4 +- .../oojs-ui/oojs-ui-mediawiki-noimages.css | 120 +++-- resources/lib/oojs-ui/oojs-ui-mediawiki.js | 4 +- resources/lib/oojs-ui/oojs-ui.js | 445 ++++++++++-------- 10 files changed, 320 insertions(+), 321 deletions(-) diff --git a/composer.json b/composer.json index 62090173ac..489c29997c 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ "ext-iconv": "*", "liuggio/statsd-php-client": "1.0.16", "mediawiki/at-ease": "1.1.0", - "oojs/oojs-ui": "0.12.12", + "oojs/oojs-ui": "0.13.0", "oyejorge/less.php": "1.7.0.9", "php": ">=5.3.3", "psr/log": "1.0.0", diff --git a/resources/lib/oojs-ui/i18n/bs.json b/resources/lib/oojs-ui/i18n/bs.json index d6f61ae53d..162790e2e6 100644 --- a/resources/lib/oojs-ui/i18n/bs.json +++ b/resources/lib/oojs-ui/i18n/bs.json @@ -2,7 +2,8 @@ "@metadata": { "authors": [ "DzWiki", - "Semso98" + "Semso98", + "Srdjan m" ] }, "ooui-outline-control-move-down": "Premjesti stavku dolje", @@ -16,5 +17,6 @@ "ooui-dialog-process-error": "Nešto je pošlo naopako", "ooui-dialog-process-dismiss": "Odbaci", "ooui-dialog-process-retry": "Pokušajte ponovo", - "ooui-dialog-process-continue": "Nastavi" + "ooui-dialog-process-continue": "Nastavi", + "ooui-selectfile-placeholder": "Nijedna datoteka nije izabrana" } diff --git a/resources/lib/oojs-ui/i18n/cs.json b/resources/lib/oojs-ui/i18n/cs.json index 0d86aa64f1..fb93e3a36c 100644 --- a/resources/lib/oojs-ui/i18n/cs.json +++ b/resources/lib/oojs-ui/i18n/cs.json @@ -26,6 +26,7 @@ "ooui-dialog-process-dismiss": "Zavřít", "ooui-dialog-process-retry": "Zkusit znovu", "ooui-dialog-process-continue": "Pokračovat", + "ooui-selectfile-button-select": "Vybrat soubor", "ooui-selectfile-not-supported": "Výběr souboru není podporován", "ooui-selectfile-placeholder": "Nebyl vybrán žádný soubor" } diff --git a/resources/lib/oojs-ui/i18n/fi.json b/resources/lib/oojs-ui/i18n/fi.json index bdf015f9c9..0b9e14999a 100644 --- a/resources/lib/oojs-ui/i18n/fi.json +++ b/resources/lib/oojs-ui/i18n/fi.json @@ -29,7 +29,8 @@ "ooui-dialog-process-dismiss": "Hylkää", "ooui-dialog-process-retry": "Yritä uudelleen", "ooui-dialog-process-continue": "Jatka", + "ooui-selectfile-button-select": "Valitse tiedosto", "ooui-selectfile-not-supported": "Tiedoston valitsemista ei tueta", "ooui-selectfile-placeholder": "Tiedostoa ei ole valittu", - "ooui-selectfile-dragdrop-placeholder": "Pudota tiedosto (tai selaa tiedostoja napsauttamalla)" + "ooui-selectfile-dragdrop-placeholder": "Pudota tiedosto tähän" } diff --git a/resources/lib/oojs-ui/i18n/nl.json b/resources/lib/oojs-ui/i18n/nl.json index 515eadab6e..d222d1c04c 100644 --- a/resources/lib/oojs-ui/i18n/nl.json +++ b/resources/lib/oojs-ui/i18n/nl.json @@ -32,6 +32,8 @@ "ooui-dialog-process-dismiss": "Sluiten", "ooui-dialog-process-retry": "Opnieuw proberen", "ooui-dialog-process-continue": "Doorgaan", + "ooui-selectfile-button-select": "Selecteer een bestand", "ooui-selectfile-not-supported": "Selectie van een bestand wordt niet ondersteund", - "ooui-selectfile-placeholder": "Er is geen bestand geselecteerd" + "ooui-selectfile-placeholder": "Er is geen bestand geselecteerd", + "ooui-selectfile-dragdrop-placeholder": "Sleep hier een bestand heen" } diff --git a/resources/lib/oojs-ui/oojs-ui-apex-noimages.css b/resources/lib/oojs-ui/oojs-ui-apex-noimages.css index 50129348fc..131413e37f 100644 --- a/resources/lib/oojs-ui/oojs-ui-apex-noimages.css +++ b/resources/lib/oojs-ui/oojs-ui-apex-noimages.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.12.12 + * OOjs UI v0.13.0 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2015 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2015-10-13T20:38:26Z + * Date: 2015-10-27T17:53:00Z */ @-webkit-keyframes oo-ui-progressBarWidget-slide { from { @@ -123,10 +123,6 @@ width: 1.875em; height: 1.875em; } -.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon { - /* Don't animate opacities for now, causes wiggling in Chrome (bug 63020) */ - /*.oo-ui-transition(opacity @medium-ease);*/ -} .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover, .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus { outline: none; @@ -176,8 +172,6 @@ border: 1px #c9c9c9 solid; -webkit-transition: border-color 100ms ease; -moz-transition: border-color 100ms ease; - -ms-transition: border-color 100ms ease; - -o-transition: border-color 100ms ease; transition: border-color 100ms ease; background: #eeeeee; filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd'); @@ -218,7 +212,6 @@ margin-right: 0.3em; } .oo-ui-buttonElement-framed.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator { - /* -0.5 - 0.475 */ margin-left: -0.005em; margin-right: -0.005em; } @@ -308,11 +301,6 @@ } .oo-ui-draggableElement { cursor: -webkit-grab -moz-grab, url(images/grab.cur), move; - /* - * HACK: In order to style horizontally, we must override - * OO.ui.OptionWidget's display rule that is currently set - * to be 'block' - */ } .oo-ui-draggableElement-dragging { cursor: -webkit-grabbing -moz-grabbing, url(images/grabbing.cur), move; @@ -575,8 +563,6 @@ position: absolute; -webkit-transition: all 200ms ease; -moz-transition: all 200ms ease; - -ms-transition: all 200ms ease; - -o-transition: all 200ms ease; transition: all 200ms ease; } .oo-ui-menuLayout-menu { @@ -724,8 +710,6 @@ border: 1px solid transparent; -webkit-transition: border-color 250ms ease; -moz-transition: border-color 250ms ease; - -ms-transition: border-color 250ms ease; - -o-transition: border-color 250ms ease; transition: border-color 250ms ease; } .oo-ui-toolGroup-empty { @@ -1085,6 +1069,9 @@ background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/apex/images/icons/check.svg"); background-image: linear-gradient(transparent, transparent), /* @embed */ url("themes/apex/images/icons/check.svg"); background-image: -o-linear-gradient(transparent, transparent), url("themes/apex/images/icons/check.png"); + background-size: contain; + background-position: center center; + background-repeat: no-repeat; } .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover { background-color: #e1f3ff; @@ -1182,7 +1169,6 @@ .oo-ui-toolbar-actions > .oo-ui-buttonElement-frameless:last-child.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label { margin: 0 1em; line-height: 3.40625em; - /* 43/12.8 */ } .oo-ui-toolbar-shadow { background-image: /* @embed */ url(themes/apex/images/toolbar-shadow.png); @@ -1191,8 +1177,6 @@ opacity: 0.5; -webkit-transition: opacity 500ms ease; -moz-transition: opacity 500ms ease; - -ms-transition: opacity 500ms ease; - -o-transition: opacity 500ms ease; transition: opacity 500ms ease; } .oo-ui-optionWidget { @@ -1404,7 +1388,6 @@ -webkit-transform: translateZ(0px); -moz-transform: translateZ(0px); -ms-transform: translateZ(0px); - -o-transform: translateZ(0px); transform: translateZ(0px); height: 2em; width: 4em; @@ -1462,8 +1445,6 @@ border: 1px #c9c9c9 solid; -webkit-transition: left 250ms ease, margin-left 250ms ease; -moz-transition: left 250ms ease, margin-left 250ms ease; - -ms-transition: left 250ms ease, margin-left 250ms ease; - -o-transition: left 250ms ease, margin-left 250ms ease; transition: left 250ms ease, margin-left 250ms ease; background: #eeeeee; filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd'); @@ -1482,8 +1463,6 @@ box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07); -webkit-transition: opacity 250ms ease; -moz-transition: opacity 250ms ease; - -ms-transition: opacity 250ms ease; - -o-transition: opacity 250ms ease; transition: opacity 250ms ease; background: #cde7f4; filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa'); @@ -1519,8 +1498,6 @@ border-right: 1px solid #cccccc; -webkit-transition: width 250ms ease, margin-left 250ms ease; -moz-transition: width 250ms ease, margin-left 250ms ease; - -ms-transition: width 250ms ease, margin-left 250ms ease; - -o-transition: width 250ms ease, margin-left 250ms ease; transition: width 250ms ease, margin-left 250ms ease; background: #cde7f4; filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#eaf4fa', endColorstr='#b0d9ee'); @@ -1533,8 +1510,6 @@ .oo-ui-progressBarWidget-indeterminate .oo-ui-progressBarWidget-bar { -webkit-animation: oo-ui-progressBarWidget-slide 2s infinite linear; -moz-animation: oo-ui-progressBarWidget-slide 2s infinite linear; - -ms-animation: oo-ui-progressBarWidget-slide 2s infinite linear; - -o-animation: oo-ui-progressBarWidget-slide 2s infinite linear; animation: oo-ui-progressBarWidget-slide 2s infinite linear; width: 40%; margin-left: -10%; @@ -1620,8 +1595,6 @@ .oo-ui-popupWidget-transitioning .oo-ui-popupWidget-popup { -webkit-transition: width 100ms ease, height 100ms ease, left 100ms ease; -moz-transition: width 100ms ease, height 100ms ease, left 100ms ease; - -ms-transition: width 100ms ease, height 100ms ease, left 100ms ease; - -o-transition: width 100ms ease, height 100ms ease, left 100ms ease; transition: width 100ms ease, height 100ms ease, left 100ms ease; } .oo-ui-popupWidget-head { @@ -1724,6 +1697,9 @@ -moz-box-sizing: border-box; box-sizing: border-box; } +.oo-ui-textInputWidget textarea { + overflow: auto; +} .oo-ui-textInputWidget input[type="search"] { -webkit-appearance: none; } @@ -1795,8 +1771,6 @@ border-radius: 0.25em; -webkit-transition: border-color 250ms ease, box-shadow 250ms ease; -moz-transition: border-color 250ms ease, box-shadow 250ms ease; - -ms-transition: border-color 250ms ease, box-shadow 250ms ease; - -o-transition: border-color 250ms ease, box-shadow 250ms ease; transition: border-color 250ms ease, box-shadow 250ms ease; } .oo-ui-textInputWidget input.oo-ui-pendingElement-pending, @@ -2010,7 +1984,6 @@ opacity: 0; z-index: 1; cursor: pointer; - /* Push the button part of the native control out of view, as it changes the cursor */ padding-top: 100px; } .oo-ui-selectFileWidget-selectButton.oo-ui-widget-disabled > .oo-ui-buttonElement-button > input[type="file"] { @@ -2804,7 +2777,6 @@ .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button { padding: 0 1em; vertical-align: middle; - /* Adjust for border so text aligns with title */ margin: -1px; } .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless, @@ -2916,8 +2888,6 @@ opacity: 0; -webkit-transition: opacity 250ms ease; -moz-transition: opacity 250ms ease; - -ms-transition: opacity 250ms ease; - -o-transition: opacity 250ms ease; transition: opacity 250ms ease; } .oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame { @@ -2928,25 +2898,19 @@ -webkit-transform: scale(0.5); -moz-transform: scale(0.5); -ms-transform: scale(0.5); - -o-transform: scale(0.5); transform: scale(0.5); -webkit-transition: all 250ms ease; -moz-transition: all 250ms ease; - -ms-transition: all 250ms ease; - -o-transition: all 250ms ease; transition: all 250ms ease; } .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready { - /* Fade window overlay */ opacity: 1; } .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame { - /* Fade frame */ opacity: 1; -webkit-transform: scale(1); -moz-transform: scale(1); -ms-transform: scale(1); - -o-transform: scale(1); transform: scale(1); } .oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame { diff --git a/resources/lib/oojs-ui/oojs-ui-apex.js b/resources/lib/oojs-ui/oojs-ui-apex.js index dab3c78d7f..3158bfe438 100644 --- a/resources/lib/oojs-ui/oojs-ui-apex.js +++ b/resources/lib/oojs-ui/oojs-ui-apex.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.12.12 + * OOjs UI v0.13.0 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2015 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2015-10-13T20:38:18Z + * Date: 2015-10-27T17:52:51Z */ /** * @class diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css index a19ebeaba0..96ba45c683 100644 --- a/resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css +++ b/resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.12.12 + * OOjs UI v0.13.0 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2015 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2015-10-13T20:38:26Z + * Date: 2015-10-27T17:53:00Z */ @-webkit-keyframes oo-ui-progressBarWidget-slide { from { @@ -206,8 +206,6 @@ position: relative; -webkit-transition: background 100ms ease, color 100ms ease, border-color 100ms ease, box-shadow 100ms ease; -moz-transition: background 100ms ease, color 100ms ease, border-color 100ms ease, box-shadow 100ms ease; - -ms-transition: background 100ms ease, color 100ms ease, border-color 100ms ease, box-shadow 100ms ease; - -o-transition: background 100ms ease, color 100ms ease, border-color 100ms ease, box-shadow 100ms ease; transition: background 100ms ease, color 100ms ease, border-color 100ms ease, box-shadow 100ms ease; } .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover, @@ -407,11 +405,6 @@ } .oo-ui-draggableElement { cursor: -webkit-grab -moz-grab, url(images/grab.cur), move; - /* - * HACK: In order to style horizontally, we must override - * OO.ui.OptionWidget's display rule that is currently set - * to be 'block' - */ } .oo-ui-draggableElement-dragging { cursor: -webkit-grabbing -moz-grabbing, url(images/grabbing.cur), move; @@ -673,8 +666,6 @@ position: absolute; -webkit-transition: all 200ms ease; -moz-transition: all 200ms ease; - -ms-transition: all 200ms ease; - -o-transition: all 200ms ease; transition: all 200ms ease; } .oo-ui-menuLayout-menu { @@ -1236,7 +1227,6 @@ .oo-ui-toolbar-actions > .oo-ui-buttonElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label { margin: 0 1em; line-height: 3.125em; - /* 40/12.8 */ } .oo-ui-optionWidget { position: relative; @@ -1443,19 +1433,16 @@ -webkit-transform: translateZ(0px); -moz-transform: translateZ(0px); -ms-transform: translateZ(0px); - -o-transform: translateZ(0px); transform: translateZ(0px); height: 2em; width: 3.5em; + border: 1px solid #777777; border-radius: 1em; - border: 1px #555555 solid; - background: #ffffff; - -webkit-transition: background-color 100ms ease; - -moz-transition: background-color 100ms ease; - -ms-transition: background-color 100ms ease; - -o-transition: background-color 100ms ease; - transition: background-color 100ms ease; + background-color: #ffffff; margin-right: 0.5em; + -webkit-transition: background-color 100ms ease, border-color 100ms ease; + -moz-transition: background-color 100ms ease, border-color 100ms ease; + transition: background-color 100ms ease, border-color 100ms ease; } .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled { cursor: default; @@ -1485,29 +1472,37 @@ .oo-ui-toggleSwitchWidget:last-child { margin-right: 0; } -.oo-ui-toggleSwitchWidget-grip { - top: 0.5em; - left: 0.5em; - width: 1em; - height: 1em; - margin-top: -1px; +.oo-ui-toggleSwitchWidget:before { + content: ""; + display: block; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + border: 1px solid transparent; border-radius: 1em; - background: #555555; + z-index: 1; +} +.oo-ui-toggleSwitchWidget-grip { + top: 0.35em; + width: 1.2em; + height: 1.2em; + border-radius: 1.2em; + background-color: #555555; -webkit-transition: left 100ms ease, margin-left 100ms ease; -moz-transition: left 100ms ease, margin-left 100ms ease; - -ms-transition: left 100ms ease, margin-left 100ms ease; - -o-transition: left 100ms ease, margin-left 100ms ease; transition: left 100ms ease, margin-left 100ms ease; } .oo-ui-toggleSwitchWidget-glow { display: none; } .oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip { - left: 2em; + left: 1.9em; margin-left: -2px; } .oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip { - left: 0.5em; + left: 0.4em; margin-left: 0; } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on { @@ -1516,25 +1511,34 @@ } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip { background: #ffffff; -} -.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:focus { - outline: none; - border-color: #347bff; -} -.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:focus.oo-ui-toggleWidget-on { - border-color: #ffffff; - box-shadow: 0 0 0 1px #347bff; + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1); } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover { border-color: #2962cc; - box-shadow: 0 0 0 1px #2962cc; } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover.oo-ui-toggleWidget-on { background: #2962cc; border-color: #2962cc; } -.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip { +.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:focus { + border-color: #347bff; + outline: none; +} +.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:focus.oo-ui-toggleWidget-on { + border-color: #347bff; +} +.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:focus.oo-ui-toggleWidget-on:before { + border-color: #ffffff; +} +.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active, +.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active:hover { + background-color: #347bff; + border-color: #347bff; +} +.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active .oo-ui-toggleSwitchWidget-grip, +.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active:hover .oo-ui-toggleSwitchWidget-grip { background: #ffffff; + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1); } .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled { background: #dddddd; @@ -1555,15 +1559,11 @@ background: #dddddd; -webkit-transition: width 200ms, margin-left 200ms; -moz-transition: width 200ms, margin-left 200ms; - -ms-transition: width 200ms, margin-left 200ms; - -o-transition: width 200ms, margin-left 200ms; transition: width 200ms, margin-left 200ms; } .oo-ui-progressBarWidget-indeterminate .oo-ui-progressBarWidget-bar { -webkit-animation: oo-ui-progressBarWidget-slide 2s infinite linear; -moz-animation: oo-ui-progressBarWidget-slide 2s infinite linear; - -ms-animation: oo-ui-progressBarWidget-slide 2s infinite linear; - -o-animation: oo-ui-progressBarWidget-slide 2s infinite linear; animation: oo-ui-progressBarWidget-slide 2s infinite linear; width: 40%; margin-left: -10%; @@ -1646,8 +1646,6 @@ .oo-ui-popupWidget-transitioning .oo-ui-popupWidget-popup { -webkit-transition: width 100ms ease, height 100ms ease, left 100ms ease; -moz-transition: width 100ms ease, height 100ms ease, left 100ms ease; - -ms-transition: width 100ms ease, height 100ms ease, left 100ms ease; - -o-transition: width 100ms ease, height 100ms ease, left 100ms ease; transition: width 100ms ease, height 100ms ease, left 100ms ease; } .oo-ui-popupWidget-head { @@ -1715,8 +1713,6 @@ .oo-ui-checkboxInputWidget input[type="checkbox"] + span { -webkit-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275); -moz-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275); - -ms-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275); - -o-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275); transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275); -webkit-box-sizing: border-box; -moz-box-sizing: border-box; @@ -1751,8 +1747,10 @@ .oo-ui-checkboxInputWidget input[type="checkbox"]:hover + span { border-bottom-width: 3px; } -.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled + span { +.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled { cursor: default; +} +.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled + span { background-color: #eeeeee; border-color: #eeeeee; } @@ -1824,8 +1822,6 @@ .oo-ui-radioInputWidget input[type="radio"] + span { -webkit-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275); -moz-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275); - -ms-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275); - -o-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275); transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275); -webkit-box-sizing: border-box; -moz-box-sizing: border-box; @@ -1860,8 +1856,10 @@ .oo-ui-radioInputWidget input[type="radio"]:hover + span { border-bottom-width: 3px; } -.oo-ui-radioInputWidget input[type="radio"]:disabled + span { +.oo-ui-radioInputWidget input[type="radio"]:disabled { cursor: default; +} +.oo-ui-radioInputWidget input[type="radio"]:disabled + span { background-color: #eeeeee; border-color: #eeeeee; } @@ -1892,6 +1890,9 @@ -moz-box-sizing: border-box; box-sizing: border-box; } +.oo-ui-textInputWidget textarea { + overflow: auto; +} .oo-ui-textInputWidget input[type="search"] { -webkit-appearance: none; } @@ -1964,8 +1965,6 @@ border-radius: 0.1em; -webkit-transition: box-shadow 100ms ease; -moz-transition: box-shadow 100ms ease; - -ms-transition: box-shadow 100ms ease; - -o-transition: box-shadow 100ms ease; transition: box-shadow 100ms ease; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; @@ -1982,8 +1981,6 @@ .oo-ui-textInputWidget.oo-ui-widget-enabled textarea { -webkit-transition: border 200ms cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 200ms cubic-bezier(0.39, 0.575, 0.565, 1); -moz-transition: border 200ms cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 200ms cubic-bezier(0.39, 0.575, 0.565, 1); - -ms-transition: border 200ms cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 200ms cubic-bezier(0.39, 0.575, 0.565, 1); - -o-transition: border 200ms cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 200ms cubic-bezier(0.39, 0.575, 0.565, 1); transition: border 200ms cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 200ms cubic-bezier(0.39, 0.575, 0.565, 1); } .oo-ui-textInputWidget.oo-ui-widget-enabled input:focus, @@ -2219,7 +2216,6 @@ opacity: 0; z-index: 1; cursor: pointer; - /* Push the button part of the native control out of view, as it changes the cursor */ padding-top: 100px; } .oo-ui-selectFileWidget-selectButton.oo-ui-widget-disabled > .oo-ui-buttonElement-button > input[type="file"] { @@ -3081,8 +3077,6 @@ opacity: 0; -webkit-transition: opacity 250ms ease; -moz-transition: opacity 250ms ease; - -ms-transition: opacity 250ms ease; - -o-transition: opacity 250ms ease; transition: opacity 250ms ease; } .oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame { @@ -3093,25 +3087,19 @@ -webkit-transform: scale(0.5); -moz-transform: scale(0.5); -ms-transform: scale(0.5); - -o-transform: scale(0.5); transform: scale(0.5); -webkit-transition: all 250ms ease; -moz-transition: all 250ms ease; - -ms-transition: all 250ms ease; - -o-transition: all 250ms ease; transition: all 250ms ease; } .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready { - /* Fade window overlay */ opacity: 1; } .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame { - /* Fade frame */ opacity: 1; -webkit-transform: scale(1); -moz-transform: scale(1); -ms-transform: scale(1); - -o-transform: scale(1); transform: scale(1); } .oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame { diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki.js b/resources/lib/oojs-ui/oojs-ui-mediawiki.js index e6344f244f..95e8b47ba0 100644 --- a/resources/lib/oojs-ui/oojs-ui-mediawiki.js +++ b/resources/lib/oojs-ui/oojs-ui-mediawiki.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.12.12 + * OOjs UI v0.13.0 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2015 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2015-10-13T20:38:18Z + * Date: 2015-10-27T17:52:51Z */ /** * @class diff --git a/resources/lib/oojs-ui/oojs-ui.js b/resources/lib/oojs-ui/oojs-ui.js index aeff69e0fa..fbffe09a77 100644 --- a/resources/lib/oojs-ui/oojs-ui.js +++ b/resources/lib/oojs-ui/oojs-ui.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.12.12 + * OOjs UI v0.13.0 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2015 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2015-10-13T20:38:18Z + * Date: 2015-10-27T17:52:51Z */ ( function ( OO ) { @@ -1289,10 +1289,10 @@ OO.ui.Element.static.unsafeInfuse = function ( idOrNode, domPromise ) { } } } ); + // pick up dynamic state, like focus, value of form inputs, scroll position, etc. + state = cls.static.gatherPreInfuseState( $elem, data ); // jscs:disable requireCapitalizedConstructors obj = new cls( data ); // rebuild widget - // pick up dynamic state, like focus, value of form inputs, scroll position, etc. - state = obj.gatherPreInfuseState( $elem ); // now replace old DOM with this new DOM. if ( top ) { $elem.replaceWith( obj.$element ); @@ -1310,6 +1310,24 @@ OO.ui.Element.static.unsafeInfuse = function ( idOrNode, domPromise ) { return obj; }; +/** + * Gather the dynamic state (focus, value of form inputs, scroll position, etc.) of a HTML DOM node + * (and its children) that represent an Element of the same class and the given configuration, + * generated by the PHP implementation. + * + * This method is called just before `node` is detached from the DOM. The return value of this + * function will be passed to #restorePreInfuseState after the newly created widget's #$element + * is inserted into DOM to replace `node`. + * + * @protected + * @param {HTMLElement} node + * @param {Object} config + * @return {Object} + */ +OO.ui.Element.static.gatherPreInfuseState = function () { + return {}; +}; + /** * Get a jQuery function within a specific document. * @@ -1888,23 +1906,6 @@ OO.ui.Element.prototype.scrollElementIntoView = function ( config ) { return OO.ui.Element.static.scrollIntoView( this.$element[ 0 ], config ); }; -/** - * Gather the dynamic state (focus, value of form inputs, scroll position, etc.) of a HTML DOM node - * (and its children) that represent an Element of the same type and configuration as the current - * one, generated by the PHP implementation. - * - * This method is called just before `node` is detached from the DOM. The return value of this - * function will be passed to #restorePreInfuseState after this widget's #$element is inserted into - * DOM to replace `node`. - * - * @protected - * @param {HTMLElement} node - * @return {Object} - */ -OO.ui.Element.prototype.gatherPreInfuseState = function () { - return {}; -}; - /** * Restore the pre-infusion dynamic state for this widget. * @@ -9730,6 +9731,8 @@ OO.ui.BookletLayout = function OoUiBookletLayout( config ) { this.stackLayout.connect( this, { set: 'onStackLayoutSet' } ); if ( this.outlined ) { this.outlineSelectWidget.connect( this, { select: 'onOutlineSelectWidgetSelect' } ); + this.scrolling = false; + this.stackLayout.connect( this, { visibleItemChange: 'onStackLayoutVisibleItemChange' } ); } if ( this.autoFocus ) { // Event 'focus' does not bubble, but 'focusin' does @@ -9801,6 +9804,22 @@ OO.ui.BookletLayout.prototype.onStackLayoutFocus = function ( e ) { } }; +/** + * Handle visibleItemChange events from the stackLayout + * + * The next visible page is set as the current page by selecting it + * in the outline + * + * @param {OO.ui.PageLayout} page The next visible page in the layout + */ +OO.ui.BookletLayout.prototype.onStackLayoutVisibleItemChange = function ( page ) { + // Set a flag to so that the resulting call to #onStackLayoutSet doesn't + // try and scroll the item into view again. + this.scrolling = true; + this.outlineSelectWidget.selectItemByData( page.getName() ); + this.scrolling = false; +}; + /** * Handle stack layout set events. * @@ -9809,7 +9828,7 @@ OO.ui.BookletLayout.prototype.onStackLayoutFocus = function ( e ) { */ OO.ui.BookletLayout.prototype.onStackLayoutSet = function ( page ) { var layout = this; - if ( page ) { + if ( !this.scrolling && page ) { page.scrollElementIntoView( { complete: function () { if ( layout.autoFocus ) { layout.focus(); @@ -11020,6 +11039,7 @@ OO.ui.StackLayout = function OoUiStackLayout( config ) { this.$element.addClass( 'oo-ui-stackLayout' ); if ( this.continuous ) { this.$element.addClass( 'oo-ui-stackLayout-continuous' ); + this.$element.on( 'scroll', OO.ui.debounce( this.onScroll.bind( this ), 250 ) ); } if ( Array.isArray( config.items ) ) { this.addItems( config.items ); @@ -11041,8 +11061,66 @@ OO.mixinClass( OO.ui.StackLayout, OO.ui.mixin.GroupElement ); * @param {OO.ui.Layout|null} item Current panel or `null` if no panel is shown */ +/** + * When used in continuous mode, this event is emitted when the user scrolls down + * far enough such that currentItem is no longer visible. + * + * @event visibleItemChange + * @param {OO.ui.PanelLayout} panel The next visible item in the layout + */ + /* Methods */ +/** + * Handle scroll events from the layout element + * + * @param {jQuery.Event} e + * @fires visibleItemChange + */ +OO.ui.StackLayout.prototype.onScroll = function () { + var currentRect, + len = this.items.length, + currentIndex = this.items.indexOf( this.currentItem ), + newIndex = currentIndex, + containerRect = this.$element[ 0 ].getBoundingClientRect(); + + if ( !containerRect || ( !containerRect.top && !containerRect.bottom ) ) { + // Can't get bounding rect, possibly not attached. + return; + } + + function getRect( item ) { + return item.$element[ 0 ].getBoundingClientRect(); + } + + function isVisible( item ) { + var rect = getRect( item ); + return rect.bottom > containerRect.top && rect.top < containerRect.bottom; + } + + currentRect = getRect( this.currentItem ); + + if ( currentRect.bottom < containerRect.top ) { + // Scrolled down past current item + while ( ++newIndex < len ) { + if ( isVisible( this.items[ newIndex ] ) ) { + break; + } + } + } else if ( currentRect.top > containerRect.bottom ) { + // Scrolled up past current item + while ( --newIndex >= 0 ) { + if ( isVisible( this.items[ newIndex ] ) ) { + break; + } + } + } + + if ( newIndex !== currentIndex ) { + this.emit( 'visibleItemChange', this.items[ newIndex ] ); + } +}; + /** * Get the current panel. * @@ -14540,6 +14618,21 @@ OO.mixinClass( OO.ui.InputWidget, OO.ui.mixin.AccessKeyedElement ); OO.ui.InputWidget.static.supportsSimpleLabel = true; +/* Static Methods */ + +/** + * @inheritdoc + */ +OO.ui.InputWidget.static.gatherPreInfuseState = function ( node, config ) { + var + state = OO.ui.InputWidget.parent.static.gatherPreInfuseState( node, config ), + $input = state.$input || $( node ).find( '.oo-ui-inputWidget-input' ); + state.value = $input.val(); + // Might be better in TabIndexedElement, but it's awkward to do there because mixins are awkward + state.focus = $input.is( ':focus' ); + return state; +}; + /* Events */ /** @@ -14718,19 +14811,6 @@ OO.ui.InputWidget.prototype.blur = function () { return this; }; -/** - * @inheritdoc - */ -OO.ui.InputWidget.prototype.gatherPreInfuseState = function ( node ) { - var - state = OO.ui.InputWidget.parent.prototype.gatherPreInfuseState.call( this, node ), - $input = state.$input || $( node ).find( '.oo-ui-inputWidget-input' ); - state.value = $input.val(); - // Might be better in TabIndexedElement, but it's awkward to do there because mixins are awkward - state.focus = $input.is( ':focus' ); - return state; -}; - /** * @inheritdoc */ @@ -14936,6 +15016,20 @@ OO.ui.CheckboxInputWidget = function OoUiCheckboxInputWidget( config ) { OO.inheritClass( OO.ui.CheckboxInputWidget, OO.ui.InputWidget ); +/* Static Methods */ + +/** + * @inheritdoc + */ +OO.ui.CheckboxInputWidget.static.gatherPreInfuseState = function ( node, config ) { + var + state = OO.ui.CheckboxInputWidget.parent.static.gatherPreInfuseState( node, config ), + $input = $( node ).find( '.oo-ui-inputWidget-input' ); + state.$input = $input; // shortcut for performance, used in InputWidget + state.checked = $input.prop( 'checked' ); + return state; +}; + /* Methods */ /** @@ -14990,18 +15084,6 @@ OO.ui.CheckboxInputWidget.prototype.isSelected = function () { return this.selected; }; -/** - * @inheritdoc - */ -OO.ui.CheckboxInputWidget.prototype.gatherPreInfuseState = function ( node ) { - var - state = OO.ui.CheckboxInputWidget.parent.prototype.gatherPreInfuseState.call( this, node ), - $input = $( node ).find( '.oo-ui-inputWidget-input' ); - state.$input = $input; // shortcut for performance, used in InputWidget - state.checked = $input.prop( 'checked' ); - return state; -}; - /** * @inheritdoc */ @@ -15225,6 +15307,20 @@ OO.ui.RadioInputWidget = function OoUiRadioInputWidget( config ) { OO.inheritClass( OO.ui.RadioInputWidget, OO.ui.InputWidget ); +/* Static Methods */ + +/** + * @inheritdoc + */ +OO.ui.RadioInputWidget.static.gatherPreInfuseState = function ( node, config ) { + var + state = OO.ui.RadioInputWidget.parent.static.gatherPreInfuseState( node, config ), + $input = $( node ).find( '.oo-ui-inputWidget-input' ); + state.$input = $input; // shortcut for performance, used in InputWidget + state.checked = $input.prop( 'checked' ); + return state; +}; + /* Methods */ /** @@ -15263,18 +15359,6 @@ OO.ui.RadioInputWidget.prototype.isSelected = function () { return this.$input.prop( 'checked' ); }; -/** - * @inheritdoc - */ -OO.ui.RadioInputWidget.prototype.gatherPreInfuseState = function ( node ) { - var - state = OO.ui.RadioInputWidget.parent.prototype.gatherPreInfuseState.call( this, node ), - $input = $( node ).find( '.oo-ui-inputWidget-input' ); - state.$input = $input; // shortcut for performance, used in InputWidget - state.checked = $input.prop( 'checked' ); - return state; -}; - /** * @inheritdoc */ @@ -15341,6 +15425,17 @@ OO.inheritClass( OO.ui.RadioSelectInputWidget, OO.ui.InputWidget ); OO.ui.RadioSelectInputWidget.static.supportsSimpleLabel = false; +/* Static Methods */ + +/** + * @inheritdoc + */ +OO.ui.RadioSelectInputWidget.static.gatherPreInfuseState = function ( node, config ) { + var state = OO.ui.RadioSelectInputWidget.parent.static.gatherPreInfuseState( node, config ); + state.value = $( node ).find( '.oo-ui-radioInputWidget .oo-ui-inputWidget-input:checked' ).val(); + return state; +}; + /* Methods */ /** @@ -15416,15 +15511,6 @@ OO.ui.RadioSelectInputWidget.prototype.setOptions = function ( options ) { return this; }; -/** - * @inheritdoc - */ -OO.ui.RadioSelectInputWidget.prototype.gatherPreInfuseState = function ( node ) { - var state = OO.ui.RadioSelectInputWidget.parent.prototype.gatherPreInfuseState.call( this, node ); - state.value = $( node ).find( '.oo-ui-radioInputWidget .oo-ui-inputWidget-input:checked' ).val(); - return state; -}; - /** * TextInputWidgets, like HTML text inputs, can be configured with options that customize the * size of the field as well as its presentation. In addition, these widgets can be configured @@ -15517,6 +15603,7 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) { this.minRows = config.rows !== undefined ? config.rows : ''; this.maxRows = config.maxRows || Math.max( 2 * ( this.minRows || 0 ), 10 ); this.validate = null; + this.styleHeight = null; // Clone for resizing if ( this.autosize ) { @@ -15603,6 +15690,22 @@ OO.ui.TextInputWidget.static.validationPatterns = { integer: /^\d+$/ }; +/* Static Methods */ + +/** + * @inheritdoc + */ +OO.ui.TextInputWidget.static.gatherPreInfuseState = function ( node, config ) { + var + state = OO.ui.TextInputWidget.parent.static.gatherPreInfuseState( node, config ), + $input = $( node ).find( '.oo-ui-inputWidget-input' ); + state.$input = $input; // shortcut for performance, used in InputWidget + if ( config.multiline ) { + state.scrollTop = $input.scrollTop(); + } + return state; +}; + /* Events */ /** @@ -15613,6 +15716,12 @@ OO.ui.TextInputWidget.static.validationPatterns = { * @event enter */ +/** + * A `resize` event is emitted when autosize is set and the widget resizes + * + * @event resize + */ + /* Methods */ /** @@ -15802,9 +15911,10 @@ OO.ui.TextInputWidget.prototype.installParentChangeDetector = function () { * This only affects #multiline inputs that are {@link #autosize autosized}. * * @chainable + * @fires resize */ OO.ui.TextInputWidget.prototype.adjustSize = function () { - var scrollHeight, innerHeight, outerHeight, maxInnerHeight, measurementError, idealHeight; + var scrollHeight, innerHeight, outerHeight, maxInnerHeight, measurementError, idealHeight, newHeight; if ( this.multiline && this.autosize && this.$input.val() !== this.valCache ) { this.$clone @@ -15839,11 +15949,12 @@ OO.ui.TextInputWidget.prototype.adjustSize = function () { this.$clone.addClass( 'oo-ui-element-hidden' ); // Only apply inline height when expansion beyond natural height is needed - if ( idealHeight > innerHeight ) { - // Use the difference between the inner and outer height as a buffer - this.$input.css( 'height', idealHeight + ( outerHeight - innerHeight ) ); - } else { - this.$input.css( 'height', '' ); + // Use the difference between the inner and outer height as a buffer + newHeight = idealHeight > innerHeight ? idealHeight + ( outerHeight - innerHeight ) : ''; + if ( newHeight !== this.styleHeight ) { + this.$input.css( 'height', newHeight ); + this.styleHeight = newHeight; + this.emit( 'resize' ); } } return this; @@ -15892,30 +16003,74 @@ OO.ui.TextInputWidget.prototype.isAutosizing = function () { }; /** - * Select the entire text of the input. + * Focus the input and select a specified range within the text. * + * @param {number} from Select from offset + * @param {number} [to] Select to offset, defaults to from * @chainable */ -OO.ui.TextInputWidget.prototype.select = function () { - this.$input.select(); - return this; -}; - -/** - * Focus the input and move the cursor to the end. - */ -OO.ui.TextInputWidget.prototype.moveCursorToEnd = function () { - var textRange, +OO.ui.TextInputWidget.prototype.selectRange = function ( from, to ) { + var textRange, isBackwards, start, end, element = this.$input[ 0 ]; + + to = to || from; + + isBackwards = to < from; + start = isBackwards ? to : from; + end = isBackwards ? from : to; + this.focus(); - if ( element.selectionStart !== undefined ) { - element.selectionStart = element.selectionEnd = element.value.length; + + if ( element.setSelectionRange ) { + element.setSelectionRange( start, end, isBackwards ? 'backward' : 'forward' ); } else if ( element.createTextRange ) { // IE 8 and below textRange = element.createTextRange(); - textRange.collapse( false ); + textRange.collapse( true ); + textRange.moveStart( 'character', start ); + textRange.moveEnd( 'character', end - start ); textRange.select(); } + return this; +}; + +/** + * Get the length of the text input value. + * + * This could differ from the length of #getValue if the + * value gets filtered + * + * @return {number} Input length + */ +OO.ui.TextInputWidget.prototype.getInputLength = function () { + return this.$input[ 0 ].value.length; +}; + +/** + * Focus the input and select the entire text. + * + * @chainable + */ +OO.ui.TextInputWidget.prototype.select = function () { + return this.selectRange( 0, this.getInputLength() ); +}; + +/** + * Focus the input and move the cursor to the start. + * + * @chainable + */ +OO.ui.TextInputWidget.prototype.moveCursorToStart = function () { + return this.selectRange( 0 ); +}; + +/** + * Focus the input and move the cursor to the end. + * + * @chainable + */ +OO.ui.TextInputWidget.prototype.moveCursorToEnd = function () { + return this.selectRange( this.getInputLength() ); }; /** @@ -16117,20 +16272,6 @@ OO.ui.TextInputWidget.prototype.positionLabel = function () { return this; }; -/** - * @inheritdoc - */ -OO.ui.TextInputWidget.prototype.gatherPreInfuseState = function ( node ) { - var - state = OO.ui.TextInputWidget.parent.prototype.gatherPreInfuseState.call( this, node ), - $input = $( node ).find( '.oo-ui-inputWidget-input' ); - state.$input = $input; // shortcut for performance, used in InputWidget - if ( this.multiline ) { - state.scrollTop = $input.scrollTop(); - } - return state; -}; - /** * @inheritdoc */ @@ -19612,104 +19753,4 @@ OO.ui.ToggleSwitchWidget.prototype.onKeyPress = function ( e ) { } }; -/*! - * Deprecated aliases for classes in the `OO.ui.mixin` namespace. - */ - -/** - * @inheritdoc OO.ui.mixin.ButtonElement - * @deprecated Use {@link OO.ui.mixin.ButtonElement} instead. - */ -OO.ui.ButtonElement = OO.ui.mixin.ButtonElement; - -/** - * @inheritdoc OO.ui.mixin.ClippableElement - * @deprecated Use {@link OO.ui.mixin.ClippableElement} instead. - */ -OO.ui.ClippableElement = OO.ui.mixin.ClippableElement; - -/** - * @inheritdoc OO.ui.mixin.DraggableElement - * @deprecated Use {@link OO.ui.mixin.DraggableElement} instead. - */ -OO.ui.DraggableElement = OO.ui.mixin.DraggableElement; - -/** - * @inheritdoc OO.ui.mixin.DraggableGroupElement - * @deprecated Use {@link OO.ui.mixin.DraggableGroupElement} instead. - */ -OO.ui.DraggableGroupElement = OO.ui.mixin.DraggableGroupElement; - -/** - * @inheritdoc OO.ui.mixin.FlaggedElement - * @deprecated Use {@link OO.ui.mixin.FlaggedElement} instead. - */ -OO.ui.FlaggedElement = OO.ui.mixin.FlaggedElement; - -/** - * @inheritdoc OO.ui.mixin.GroupElement - * @deprecated Use {@link OO.ui.mixin.GroupElement} instead. - */ -OO.ui.GroupElement = OO.ui.mixin.GroupElement; - -/** - * @inheritdoc OO.ui.mixin.GroupWidget - * @deprecated Use {@link OO.ui.mixin.GroupWidget} instead. - */ -OO.ui.GroupWidget = OO.ui.mixin.GroupWidget; - -/** - * @inheritdoc OO.ui.mixin.IconElement - * @deprecated Use {@link OO.ui.mixin.IconElement} instead. - */ -OO.ui.IconElement = OO.ui.mixin.IconElement; - -/** - * @inheritdoc OO.ui.mixin.IndicatorElement - * @deprecated Use {@link OO.ui.mixin.IndicatorElement} instead. - */ -OO.ui.IndicatorElement = OO.ui.mixin.IndicatorElement; - -/** - * @inheritdoc OO.ui.mixin.ItemWidget - * @deprecated Use {@link OO.ui.mixin.ItemWidget} instead. - */ -OO.ui.ItemWidget = OO.ui.mixin.ItemWidget; - -/** - * @inheritdoc OO.ui.mixin.LabelElement - * @deprecated Use {@link OO.ui.mixin.LabelElement} instead. - */ -OO.ui.LabelElement = OO.ui.mixin.LabelElement; - -/** - * @inheritdoc OO.ui.mixin.LookupElement - * @deprecated Use {@link OO.ui.mixin.LookupElement} instead. - */ -OO.ui.LookupElement = OO.ui.mixin.LookupElement; - -/** - * @inheritdoc OO.ui.mixin.PendingElement - * @deprecated Use {@link OO.ui.mixin.PendingElement} instead. - */ -OO.ui.PendingElement = OO.ui.mixin.PendingElement; - -/** - * @inheritdoc OO.ui.mixin.PopupElement - * @deprecated Use {@link OO.ui.mixin.PopupElement} instead. - */ -OO.ui.PopupElement = OO.ui.mixin.PopupElement; - -/** - * @inheritdoc OO.ui.mixin.TabIndexedElement - * @deprecated Use {@link OO.ui.mixin.TabIndexedElement} instead. - */ -OO.ui.TabIndexedElement = OO.ui.mixin.TabIndexedElement; - -/** - * @inheritdoc OO.ui.mixin.TitledElement - * @deprecated Use {@link OO.ui.mixin.TitledElement} instead. - */ -OO.ui.TitledElement = OO.ui.mixin.TitledElement; - }( OO ) ); -- 2.20.1